package com.sinosoft.ebusiness.domain.elementManage;
// 采用工具 Hibernate Tools 3.2.4.GA (sinosoft version) 生成，请勿手工修改。

import java.util.ArrayList;
import java.util.List;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.sinosoft.ebusiness.domain.elementManage.GeProductStepFunction;
import com.sinosoft.ebusiness.domain.elementManage.GeProductStepRule;
import com.sinosoft.ebusiness.domain.elementManage.GeProductStepViewitemId;
import com.sinosoft.ebusiness.domain.elementManage.GeProductTemplateViewgroup;
import com.sinosoft.ebusiness.domain.elementManage.GeRateConditionItem;

/**
 * POJO类GeProductStepViewitem
 */
@Entity
@Table(name = "GE_PRODUCT_STEP_VIEWITEM")
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})
public class GeProductStepViewitem implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5754886775867329082L;

	/** 属性ID */
	private GeProductStepViewitemId id;

	/** 属性geProductTemplateViewgroup */
	private GeProductTemplateViewgroup geProductTemplateViewgroup;

	/** 属性标的项目中文名称 */
	private String itemCName;

	/** 属性标的项目英文名称 */
	private String itemEName;

	/** 属性itemtname */
	private String itemtname;

	/** 属性项目代码 */
	private String itemType;

	/** 属性relevancetable */
	private String relevancetable;

	/** 属性selectcontent */
	private String selectcontent;

	/** 属性showkey */
	private String showkey;

	/** 属性showvalue */
	private String showvalue;

	/** 属性moreselect */
	private String moreselect;

	/** 属性审核状态 */
	private String status;

	/** 属性备注 */
	private String remark;

	/** 属性isshow */
	private String isshow;

	/** 属性isedit */
	private String isedit;

	/** 属性isendor */
	private String isendor;

	/** 属性isprint */
	private String isprint;

	/** 属性isview */
	private String isview;

	/** 属性DefaultValue */
	private String defaultValue;

	/** 属性required */
	private String required;
	
	/** 属性maxLength */
	private String maxLength;
	
	/** 属性max */
	private String max;
	
	/** 属性min */
	private String min;
	
	/** 属性digits */
	private String digits;

	/** 属性mindateType */
	private String mindateType;
	
	/** 属性maxdateType */
	private String maxdateType;
	
	/** 属性minDate */
	private String minDate;
	
	/** 属性maxDate */
	private String maxDate;
	
	/**	属性linkType 链接类型**/
	private String linkType;
	
	/**	属性linkAddress 链接地址**/
	private String linkAddress; 
	
	@Column(name = "MINDATETYPE")
	public String getMindateType() {
		return mindateType;
	}

	public void setMindateType(String mindateType) {
		this.mindateType = mindateType;
	}
	@Column(name = "MAXDATETYPE")
	public String getMaxdateType() {
		return maxdateType;
	}

	public void setMaxdateType(String maxdateType) {
		this.maxdateType = maxdateType;
	}

	@Column(name = "MINDATE")
	public String getMinDate() {
		return minDate;
	}

	public void setMinDate(String minDate) {
		this.minDate = minDate;
	}
	@Column(name = "MAXDATE")
	public String getMaxDate() {
		return maxDate;
	}

	public void setMaxDate(String maxDate) {
		this.maxDate = maxDate;
	}

	/** 属性precision */
	private String precision;
	
	@Column(name = "PRECISION")
	public String getPrecision() {
		return precision;
	}

	public void setPrecision(String precision) {
		this.precision = precision;
	}

	@Column(name = "DIGITS")
	public String getDigits() {
		return digits;
	}

	public void setDigits(String digits) {
		this.digits = digits;
	}

	@Column(name = "MAX")
	public String getMax() {
		return max;
	}

	public void setMax(String max) {
		this.max = max;
	}
	
	@Column(name = "MIN")
	public String getMin() {
		return min;
	}

	public void setMin(String min) {
		this.min = min;
	}

	@Column(name = "MAXLENGTH")
	public String getMaxLength() {
		return maxLength;
	}

	public void setMaxLength(String maxLength) {
		this.maxLength = maxLength;
	}

	/** 属性dateformat */
	private String dateformat;

	/** 属性显示顺序序号 */
	private Long orderNo;

	/** 属性职位 */
	private String position;

	/** 属性othterwhereconditionfun */
	private String othterwhereconditionfun;

	/** 属性geProductStepRules */
	private List<GeProductStepRule> geProductStepRules = new ArrayList<GeProductStepRule>(
			0);

	/** 属性geProductStepFunctions */
	private List<GeProductStepFunction> geProductStepFunctions = new ArrayList<GeProductStepFunction>(
			0);
	
	/** 属性geRateConditionItems */
	private List<GeRateConditionItem> geRateConditionItems = new ArrayList<GeRateConditionItem>(
			0);

	/**
	 * 类GeProductStepViewitem的默认构造方法
	 */
	public GeProductStepViewitem() {
	}

	/**
	 * 属性ID的getter方法
	 */
	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "itemCode", column = @Column(name = "ITEMCODE",nullable = false, insertable = false, updatable = false)),
			@AttributeOverride(name = "groupcode", column = @Column(name = "GROUPCODE",nullable = false, insertable = false, updatable = false)),
			@AttributeOverride(name = "productcode", column = @Column(name = "PRODUCTCODE",nullable = false, insertable = false, updatable = false)),
			@AttributeOverride(name = "version", column = @Column(name = "VERSION",nullable = false, insertable = false, updatable = false)),
			@AttributeOverride(name = "processcode", column = @Column(name = "PROCESSCODE",nullable = false, insertable = false, updatable = false)) })
	public GeProductStepViewitemId getId() {
		return this.id;
	}

	/**
	 * 属性ID的setter方法
	 */
	public void setId(GeProductStepViewitemId id) {
		this.id = id;
	}

	/**
	 * 属性geProductTemplateViewgroup的getter方法
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({
			@JoinColumn(name = "GROUPCODE", referencedColumnName = "GROUPCODE",nullable = false, insertable = false, updatable = false),
			@JoinColumn(name = "PROCESSCODE", referencedColumnName = "PROCESSCODE",nullable = false, insertable = false, updatable = false),
			@JoinColumn(name = "PRODUCTCODE", referencedColumnName = "PRODUCTCODE",nullable = false, insertable = false, updatable = false),
			@JoinColumn(name = "VERSION", referencedColumnName = "VERSION",nullable = false, insertable = false, updatable = false) })
	@JsonBackReference
	public GeProductTemplateViewgroup getGeProductTemplateViewgroup() {
		return this.geProductTemplateViewgroup;
	}

	/**
	 * 属性geProductTemplateViewgroup的setter方法
	 */
	public void setGeProductTemplateViewgroup(
			GeProductTemplateViewgroup geProductTemplateViewgroup) {
		this.geProductTemplateViewgroup = geProductTemplateViewgroup;
	}

	/**
	 * 属性标的项目中文名称的getter方法
	 */

	@Column(name = "ITEMCNAME")
	public String getItemCName() {
		return this.itemCName;
	}

	/**
	 * 属性标的项目中文名称的setter方法
	 */
	public void setItemCName(String itemCName) {
		this.itemCName = itemCName;
	}

	/**
	 * 属性标的项目英文名称的getter方法
	 */

	@Column(name = "ITEMENAME")
	public String getItemEName() {
		return this.itemEName;
	}

	/**
	 * 属性标的项目英文名称的setter方法
	 */
	public void setItemEName(String itemEName) {
		this.itemEName = itemEName;
	}

	/**
	 * 属性itemtname的getter方法
	 */

	@Column(name = "ITEMTNAME")
	public String getItemtname() {
		return this.itemtname;
	}

	/**
	 * 属性itemtname的setter方法
	 */
	public void setItemtname(String itemtname) {
		this.itemtname = itemtname;
	}

	/**
	 * 属性项目代码的getter方法
	 */

	@Column(name = "ITEMTYPE")
	public String getItemType() {
		return this.itemType;
	}

	/**
	 * 属性项目代码的setter方法
	 */
	public void setItemType(String itemType) {
		this.itemType = itemType;
	}

	/**
	 * 属性relevancetable的getter方法
	 */

	@Column(name = "RELEVANCETABLE")
	public String getRelevancetable() {
		return this.relevancetable;
	}

	/**
	 * 属性relevancetable的setter方法
	 */
	public void setRelevancetable(String relevancetable) {
		this.relevancetable = relevancetable;
	}

	/**
	 * 属性selectcontent的getter方法
	 */

	@Column(name = "SELECTCONTENT")
	public String getSelectcontent() {
		return this.selectcontent;
	}

	/**
	 * 属性selectcontent的setter方法
	 */
	public void setSelectcontent(String selectcontent) {
		this.selectcontent = selectcontent;
	}

	/**
	 * 属性showkey的getter方法
	 */

	@Column(name = "SHOWKEY")
	public String getShowkey() {
		return this.showkey;
	}

	/**
	 * 属性showkey的setter方法
	 */
	public void setShowkey(String showkey) {
		this.showkey = showkey;
	}

	/**
	 * 属性showvalue的getter方法
	 */

	@Column(name = "SHOWVALUE")
	public String getShowvalue() {
		return this.showvalue;
	}

	/**
	 * 属性showvalue的setter方法
	 */
	public void setShowvalue(String showvalue) {
		this.showvalue = showvalue;
	}

	/**
	 * 属性moreselect的getter方法
	 */

	@Column(name = "MORESELECT")
	public String getMoreselect() {
		return this.moreselect;
	}

	/**
	 * 属性moreselect的setter方法
	 */
	public void setMoreselect(String moreselect) {
		this.moreselect = moreselect;
	}

	/**
	 * 属性审核状态的getter方法
	 */

	@Column(name = "STATUS")
	public String getStatus() {
		return this.status;
	}

	/**
	 * 属性审核状态的setter方法
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 属性备注的getter方法
	 */

	@Column(name = "REMARK")
	public String getRemark() {
		return this.remark;
	}

	/**
	 * 属性备注的setter方法
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 属性isshow的getter方法
	 */

	@Column(name = "ISSHOW")
	public String getIsshow() {
		return this.isshow;
	}

	/**
	 * 属性isshow的setter方法
	 */
	public void setIsshow(String isshow) {
		this.isshow = isshow;
	}

	/**
	 * 属性isedit的getter方法
	 */

	@Column(name = "ISEDIT")
	public String getIsedit() {
		return this.isedit;
	}

	/**
	 * 属性isedit的setter方法
	 */
	public void setIsedit(String isedit) {
		this.isedit = isedit;
	}

	/**
	 * 属性isendor的getter方法
	 */

	@Column(name = "ISENDOR")
	public String getIsendor() {
		return this.isendor;
	}

	/**
	 * 属性isendor的setter方法
	 */
	public void setIsendor(String isendor) {
		this.isendor = isendor;
	}

	/**
	 * 属性isprint的getter方法
	 */

	@Column(name = "ISPRINT")
	public String getIsprint() {
		return this.isprint;
	}

	/**
	 * 属性isprint的setter方法
	 */
	public void setIsprint(String isprint) {
		this.isprint = isprint;
	}

	/**
	 * 属性isview的getter方法
	 */

	@Column(name = "ISVIEW")
	public String getIsview() {
		return this.isview;
	}

	/**
	 * 属性isview的setter方法
	 */
	public void setIsview(String isview) {
		this.isview = isview;
	}

	/**
	 * 属性DefaultValue的getter方法
	 */

	@Column(name = "DEFAULTVALUE")
	public String getDefaultValue() {
		return this.defaultValue;
	}

	/**
	 * 属性DefaultValue的setter方法
	 */
	public void setDefaultValue(String defaultValue) {
		this.defaultValue = defaultValue;
	}

	/**
	 * 属性required的getter方法
	 */

	@Column(name = "REQUIRED")
	public String getRequired() {
		return this.required;
	}

	/**
	 * 属性required的setter方法
	 */
	public void setRequired(String required) {
		this.required = required;
	}

	/**
	 * 属性dateformat的getter方法
	 */

	@Column(name = "DATEFORMAT")
	public String getDateformat() {
		return this.dateformat;
	}

	/**
	 * 属性dateformat的setter方法
	 */
	public void setDateformat(String dateformat) {
		this.dateformat = dateformat;
	}

	/**
	 * 属性显示顺序序号的getter方法
	 */

	@Column(name = "ORDERNO")
	public Long getOrderNo() {
		return this.orderNo;
	}

	/**
	 * 属性显示顺序序号的setter方法
	 */
	public void setOrderNo(Long orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 属性职位的getter方法
	 */

	@Column(name = "POSITION")
	public String getPosition() {
		return this.position;
	}

	/**
	 * 属性职位的setter方法
	 */
	public void setPosition(String position) {
		this.position = position;
	}

	/**
	 * 属性othterwhereconditionfun的getter方法
	 */

	@Column(name = "OTHTERWHERECONDITIONFUN")
	public String getOthterwhereconditionfun() {
		return this.othterwhereconditionfun;
	}

	/**
	 * 属性othterwhereconditionfun的setter方法
	 */
	public void setOthterwhereconditionfun(String othterwhereconditionfun) {
		this.othterwhereconditionfun = othterwhereconditionfun;
	}

	/**
	 * 属性geProductStepRules的getter方法
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "geProductStepViewitem")
	public List<GeProductStepRule> getGeProductStepRules() {
		return this.geProductStepRules;
	}

	/**
	 * 属性geProductStepRules的setter方法
	 */
	public void setGeProductStepRules(List<GeProductStepRule> geProductStepRules) {
		this.geProductStepRules = geProductStepRules;
	}

	/**
	 * 属性geProductStepFunctions的getter方法
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "geProductStepViewitem")
	public List<GeProductStepFunction> getGeProductStepFunctions() {
		return this.geProductStepFunctions;
	}

	/**
	 * 属性geProductStepFunctions的setter方法
	 */
	public void setGeProductStepFunctions(
			List<GeProductStepFunction> geProductStepFunctions) {
		this.geProductStepFunctions = geProductStepFunctions;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "geProductStepViewitem")
	public List<GeRateConditionItem> getGeRateConditionItems() {
		return geRateConditionItems;
	}

	public void setGeRateConditionItems(
			List<GeRateConditionItem> geRateConditionItems) {
		this.geRateConditionItems = geRateConditionItems;
	}

	@Column(name = "LINKTYPE")
	public String getLinkType() {
		return linkType;
	}

	public void setLinkType(String linkType) {
		this.linkType = linkType;
	}

	@Column(name = "LINKADDRESS")
	public String getLinkAddress() {
		return linkAddress;
	}

	public void setLinkAddress(String linkAddress) {
		this.linkAddress = linkAddress;
	}
	
}
